package com.gt.web.srv.mapper;

import com.gt.web.srv.domain.ActivityGroup;
import com.gt.web.srv.domain.RepairApplicationImages;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.sql.Date;
import java.util.List;

@Mapper
public interface ActivityGroupMapper {

    /**
     * 根据ID查询活动组
     * @param activityGroupId 活动组ID
     * @return 活动组实体
     */
    ActivityGroup selectById(Long activityGroupId);

    /**
     * 查询活动组列表
     * @param activityGroup 查询条件
     * @return 活动组列表
     */
    List<ActivityGroup> selectList(ActivityGroup activityGroup);

    /**
     * 查询有效活动组列表
     * @param currentTime 当前时间
     * @return 有效活动组列表
     */
    List<ActivityGroup> selectValidList(Date currentTime);

    /**
     * 新增活动组
     * @param activityGroup 活动组实体
     * @return 影响行数
     */
    int insert(ActivityGroup activityGroup);

    /**
     * 批量新增活动组
     * @param activityGroups 活动组列表
     * @return 影响行数
     */
    int batchInsert(List<ActivityGroup> activityGroups);

    /**
     * 更新活动组
     * @param activityGroup 活动组实体
     * @return 影响行数
     */
    int update(ActivityGroup activityGroup);

    /**
     * 更新活动组状态
     * @param activityGroupId 活动组ID
     * @param status 状态
     * @param updateBy 更新人
     * @return 影响行数
     */
    int updateStatus(@Param("activityGroupId") Long activityGroupId,
                     @Param("status") Integer status,
                     @Param("updateBy") String updateBy);

    /**
     * 删除活动组
     * @param activityGroupId 活动组ID
     * @return 影响行数
     */
    int deleteById(Long activityGroupId);

    /**
     * 批量删除活动组
     * @param activityGroupIds 活动组ID列表
     * @return 影响行数
     */
    int deleteByIds(Long[] activityGroupIds);
}